﻿// Decompiled with JetBrains decompiler
// Type: UnityEngine.Pool.PooledObject`1
// Assembly: UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: E6AE6B5A-2752-4B07-9528-C8B77C62CE79
// Assembly location: C:\Users\windys\Unity\2021.3.39f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll
// XML documentation location: C:\Users\windys\Unity\2021.3.39f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.xml

using System;

#nullable disable
namespace UnityEngine.Pool
{
  public struct PooledObject<T> : IDisposable where T : class
  {
    private readonly T m_ToReturn;
    private readonly IObjectPool<T> m_Pool;

    internal PooledObject(T value, IObjectPool<T> pool)
    {
      this.m_ToReturn = value;
      this.m_Pool = pool;
    }

    void IDisposable.Dispose() => this.m_Pool.Release(this.m_ToReturn);
  }
}
